<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var list = [
            {
                'name': '张三',
                'py': 'zhnagsan'
            },
            {
                'name': '李四',
                'py': 'lisi'
            },
            {
                'name': '王五',
                'py': 'wangwu'
            },
            {
                'name': '赵六',
                'py': 'zhaoliu'
            },
        ];

        var resault = data_letter_sort(list, 'py');

        console.log(resault);
        function data_letter_sort(data, field) {
            var letter_reg = /^[A-Z]$/;
            var list = new Array();
            for (var i = 0; i < data.length; i++) {
                // 首字母 转 大写英文
                letter = (data[i][field]).substr(0, 1).toUpperCase();
                // 是否 大写 英文 字母
                // if (!letter_reg.test(letter)) {
                //     letter = '#';
                // }
                // 创建 字母 分组
                if (!(letter in list)) {
                    list[letter] = new Array();
                }
                // 字母 分组 添加 数据
                list[letter].push(data[i]);
            }
            // 转换 格式 进行 排序；
            var resault = new Array();
            for (var key in list) {
                resault.push({
                    letter: key,
                    list: list[key]
                });
            }
            resault.sort(function (x, y) {
                return x.letter.charCodeAt(0) - y.letter.charCodeAt(0);
            });
            // # 号分组 放最后
            var last_arr = resault[0];
            resault.splice(0, 1);
            resault.push(last_arr);

            // 转换 数据 格式
            var json_sort = {}
            for (var i = 0; i < resault.length; i++) {
                json_sort[resault[i].letter] = resault[i].list;
            }

            return json_sort;
        }
    </script>
</body>

</html>